﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ObviousCode.Stately
{
    public class TransitionExceptionEventArgs<TState, TData> : EventArgs where TState : struct, IConvertible
    {
        public Transition<TState> Transition { get; private set; }
        public Exception Exception { get; private set; }
        public TData Data { get; private set; }

        public TransitionExceptionEventArgs(Transition<TState> transition, Exception exception, TData data)
        {
            Transition = transition;
            Exception = exception;
            Data = data;
        }
    }
}
